package br.cesed.facisa.si.tap.folha.entidades;

import br.cesed.facisa.si.tap.folha.interfaces.Salario;

import java.util.ArrayList;
import java.util.List;

public class Funcionario
    extends Pessoa
    implements Salario
{
    private double salarioBase;
    private String contrato;
    private List<Escolaridade> escolaridades;
    private String funcao;

    public Funcionario(  )
    {
        escolaridades = new ArrayList<Escolaridade>(  );
    }

    public void setFuncao( String funcao )
    {
        this.funcao = funcao;
    }

    public String getFuncao(  )
    {
        return funcao;
    }

    public String getContrato(  )
    {
        return contrato;
    }

    public void setContrato( String contrato )
    {
        this.contrato = contrato;
    }

    public double getSalarioBase(  )
    {
        return salarioBase;
    }

    public void setSalarioBase( double salarioBase )
    {
        this.salarioBase = salarioBase;
    }

    public List<Escolaridade> getEscolaridades(  )
    {
        return escolaridades;
    }

    public void setEscolaridades( List<Escolaridade> escolaridades )
    {
        this.escolaridades = escolaridades;
    }

    public void adicionarEscolaridade( Escolaridade escolaridade )
    {
        escolaridades.add( escolaridade );
    }

    public void removerEscolaridade( Escolaridade escolaridade )
    {
        escolaridades.remove( escolaridade );
    }

    public double getSalario(  )
    {
        return getSalarioBase(  ) + getSomarGratificacoes(  );
    }

    public String toString(  )
    {
        return "Nome: " + getNome(  ) + " - Telefone: " + getTelefone(  ) + " - Email: " + getEmail(  ) +
               " - Endereco: " + getEndereco(  ) + " - Fun��o: " + getFuncao(  ) + " - Salario: " + getSalario(  ) +
               " - Contrato: " + getContrato(  ) + " - Escolaridade: " + getNomesEscolaridades(  );
    }

    public double getSomarGratificacoes(  )
    {
        double soma = 0;

        for ( Escolaridade escolaridade : escolaridades )
        {
            soma += escolaridade.getValor(  );
        }

        return soma;
    }

    public String getNomesEscolaridades(  )
    {
        String nomesEscolaridades = escolaridades.get( 0 ).getNome(  );

        for ( int i = 1; i < escolaridades.size(  ); i++ )
        {
            nomesEscolaridades += ( ", " + escolaridades.get( i ).getNome(  ) );
        }

        return nomesEscolaridades;
    }
}
